﻿using Abp.Domain.Entities.Auditing;
using System;
using System.Collections.Generic;
using System.Text;
using static Camc.Quality.StoreManagement.StoreEnum;

namespace Camc.Quality.StoreManagement.StoreInfo
{
    public class StoreInfoDto : FullAuditedEntity<Guid>
    {

        #region 仓库信息 
        /// <summary>
        /// 入库单号
        /// </summary>
        public string StorePutNo { get; set; }
        /// <summary>
        /// 物料细料ID
        /// </summary>
        public Guid MaterialsContentId { get; set; }
        /// <summary>
        /// 仓库ID
        /// </summary>
        public Guid? StoreId { get; set; }
        /// <summary>
        /// 仓库名称
        /// </summary>
        public string StroeName { get; set; }
        /// <summary>
        /// 储位ID
        /// </summary>
        public string BinLocationId { get; set; }
        /// <summary>
        /// 储位
        /// </summary>
        public string BinLocation { get; set; }
        /// <summary>
        /// 放行单号
        /// </summary>
        public string ReleaseOrder { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
        /// <summary>
        /// 入库时间
        /// </summary>
        public DateTime StorePutTime { get; set; }
        /// <summary>
        /// 入库人
        /// </summary>
        public string StorePutPeople { get; set; }
        /// <summary>
        /// 入库方式
        /// </summary>
        public int WarehousMethod { get; set; }
        /// <summary>
        /// 物料入库状态 0待入库、1已入库
        /// </summary>
        public int StoreStateContent { get; set; }
        /// <summary>
        /// 确认人ID
        /// </summary>
        public long? IdentifyingPeopleId { get; set; }
        /// <summary>
        /// 确认人
        /// </summary>
        public string IdentifyingPeople { get; set; }
        /// <summary>
        /// 确认时间
        /// </summary>
        public DateTime? IdentifyingTime { get; set; }
        #endregion

        #region 合格证信息 
        /// <summary>
        /// 合格证号
        /// </summary>
        public string QualifiedNumber { get; set; }
        /// <summary>
        /// 产品图号
        /// </summary>
        public string ProductDrawingNo { get; set; }
        /// <summary>
        /// 产品编号(件号)
        /// </summary>
        public string ProductNumber { get; set; }
        /// <summary>
        /// 可用产品编号(展示用)
        /// </summary>
        public string ProductNumberShow { get; set; }
        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }
        /// <summary>
        /// 批次
        /// </summary>
        public string Batch { get; set; }
        /// <summary>
        /// 合格证号任务
        /// </summary>
        public string QualifiedTaskNumber { get; set; }
        /// <summary>
        /// 特殊记载
        /// </summary>
        public string SpecialRecords { get; set; }
        /// <summary>
        /// 金属材料牌号状态
        /// </summary>
        public string MaterialBrandStatus { get; set; }
        /// <summary>
        /// 炉(批)号
        /// </summary>
        public string HeatNumber { get; set; }
        /// <summary>
        /// 化(试)验号
        /// </summary>
        public string Mthd { get; set; }
        /// <summary>
        /// 非金属材料牌号
        /// </summary>
        public string NonmetallicMaterialsBrand { get; set; }
        /// <summary>
        /// 批次号
        /// </summary>
        public string BatchNo { get; set; }
        /// <summary>
        /// 压制日期
        /// </summary>
        public string SuppressionDate { get; set; }
        /// <summary>
        /// 处理技术问题文件编号
        /// </summary>
        public string DocumentNo { get; set; }
        /// <summary>
        /// 制造车间
        /// </summary>
        public string ManufacturingWorkshop { get; set; }
        /// <summary>
        /// 生产工人
        /// </summary>
        public string ProductionWorkers { get; set; }
        /// <summary>
        /// 工(组)长
        /// </summary>
        public string Foreman { get; set; }
        /// <summary>
        /// 检验员
        /// </summary>
        public string Inspector { get; set; }
        /// <summary>
        /// 日期
        /// </summary>
        public string Date { get; set; }
        /// <summary>
        /// 质控卡号
        /// </summary>
        public string QCCardNo { get; set; }
        /// <summary>
        /// 装配任务号
        /// </summary>
        public string AssemblyTaskNumber { get; set; }
        /// <summary>
        /// 阶段标记
        /// </summary>
        public string StageMark { get; set; }
        /// <summary>
        /// 材料牌号
        /// </summary>
        public string MaterialGrade { get; set; }
        /// <summary>
        /// 材料状态
        /// </summary>
        public string MaterialStatus { get; set; }
        /// <summary>
        /// 材料规格
        /// </summary>
        public string MaterialSpecification { get; set; }
        /// <summary>
        /// 标准件规格
        /// </summary>
        public string StandardSpecification { get; set; }
        /// <summary>
        /// 技术条件
        /// </summary>
        public string TechnicalConditions { get; set; }
        /// <summary>
        /// 材料合格证
        /// </summary>
        public string MaterialCertificate { get; set; }
        /// <summary>
        /// 协作合格证
        /// </summary>
        public string CooperationCertificate { get; set; }
        /// <summary>
        /// 供应单位
        /// </summary>
        public string SupplyCompany { get; set; }
        /// <summary>
        /// 非金属制造日期
        /// </summary>
        public DateTime? NonMetallicManufacturingDate { get; set; }
        /// <summary>
        /// 非金属压制日期
        /// </summary>
        public DateTime? NonMetallicPressingDate { get; set; }
        #endregion

        #region 基础信息 
        /// <summary>
        /// 型号(产品代号)名字
        /// </summary>
        public string ProductCodeName { get; set; }
        /// <summary>
        /// 型号(产品代号)ID
        /// </summary>
        public string ProductCode { get; set; }
        /// <summary>
        /// 发次ID名字
        /// </summary>
        public string SendTimeName { get; set; }
        /// <summary>
        /// 发次ID
        /// </summary>
        public string SendTime { get; set; }
        /// <summary>
        /// 物料细分类别
        /// </summary>
        public string MaterialCategory { get; set; }
        /// <summary>
        /// 物料细分类别ID
        /// </summary>
        public Guid MaterialCategoryId { get; set; }
        /// <summary>
        /// 物料类别
        /// </summary>
        public string MaterialsNode { get; set; }
        /// <summary>
        /// 物料类别ID
        /// </summary>
        public Guid MaterialsNodeId { get; set; }
        /// <summary>
        /// 规格
        /// </summary>
        public string Module { get; set; }
        /// <summary>
        /// 有效期止
        /// </summary>
        public string ExpirationDate { get; set; }
        /// <summary>
        /// 单位Id
        /// </summary>
        public Guid UnitId { get; set; }
        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }
        /// <summary>
        ///转批次
        /// </summary>
        public string TurnBatch { get; set; }
        /// <summary>
        /// 物料属性
        /// </summary>
        public int MaterialsProperty { get; set; }
        #endregion
        /// <summary>
        /// 库存数量
        /// </summary>
        public int StoreQuality { get; set; }
        /// <summary>
        /// 自由库存数量
        /// </summary>
        public int FreeStoreQuality { get; set; }
        /// <summary>
        /// 可用预配套数量
        /// </summary>
        public int UsableQuantityStock { get; set; }
        /// <summary>
        /// 配套数量
        /// </summary>
        public int SuiteStock { get; set; }

        /// <summary>
        /// 装配任务号
        /// </summary>
        public string AssemblingTaskCode { get; set; }
        /// <summary>
        /// 隔离单号
        /// </summary>
        public string IsolationCode { get; set; }
        /// <summary>
        /// 隔离原因
        /// </summary>

        public string IsolationReason { get; set; }
        /// <summary>
        /// 隔离人员
        /// </summary>

        public string IsolationUser { get; set; }
        /// <summary>
        /// 隔离时间
        /// </summary>

        public DateTime? IsolationTime { get; set; }


        public IList<StoreStockContentDto> StoreStockContentDto { get; set; }
    }
}
